项目介绍
项目完全由代码所写,没有使用storyboard,代码更具有复现性。
手动部分:需要将图片拖入assets
项目知识
SnapKit 布局
经典的Swift版的第三方库,专门用于项目的自动布局,目前在github上的stars就高达9340颗星。
作者仍然是写Objective-C的第三方库Masonry的大牛 - @Robert Payne。
SnapKit配置
1.github下载:https://github.com/SnapKit/SnapKit
2.将下载下来的SnapKit项目的 SnapKit.xcodeproj 拖进自己的项目目录最外层中
3.工程文件 -> General -> Embedded Binaries 中点击加号,添加SnapKit库到项目中来
4.command+B 重新编译项目
SnapKit使用
1 | import UIKit |
Timer 计时器
初始化
1 | self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true ,block:{ (timer) in |
启动:fire
1 | self.timer.fire() |
您可以使用此方法来触发重复计时器,而不会中断其常规的触发计划。
如果计时器不重复 repeats,则在触发后自动失效,即使其预定的触发日期尚未到达。
暂停:invalidate(移除计时循环)
1 | self.timer.invalidate() |
官方的解释是:
This method is the only way to remove a timer from an NSRunLoop object. The NSRunLoop object removes and releases the timer, either just before the invalidate method returns or at some later point.
这是唯一一个把一个定时器从NSRunLoop object运行循环中移除的方法。
NSRunLoop object这个对象移除,并且release掉这个的定时器,或者是在这个invalidate方法返回的之前或是在之后的某个时间段,再进行移除并release操作。
guard
guard 打头只判断合理条件,保证判断条件简约
guard xxx : 如果不满足gurad后面的条件xxx,则执行else的内部代码
详见 guard详解
源码
1 | // |